package pe.com.bbva.pct.domain;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import pe.com.bbva.pct.util.ConstantesGenerales;

@Entity
@Table(name="TMR002_FUENTE", schema = ConstantesGenerales.DATABASE)
public class Fuente implements Serializable{

	private static final long serialVersionUID = 7519843070129738252L;
	private Long idFuente;
	private Valor idTipoFuente;
	private Valor idEntradaSalida;
	private String nombre;
	private String rutaArchivo;
	private String NombreJndi;
	private String consulta;
	private String nombreTabla;
	private String nombreXml;
	private String rutaXml;
	private Valor idEstado;
	
	@Id
	@SequenceGenerator(name="SQ_ID_FUENTE", sequenceName=ConstantesGenerales.DATABASE+".SQ_ID_FUENTE", allocationSize = 1)
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SQ_ID_FUENTE")
	@Column(name="CD_ID_FUENTE", unique=true, nullable=false, precision=36)
	public Long getIdFuente() {
		return idFuente;
	}
	public void setIdFuente(Long idFuente) {
		this.idFuente = idFuente;
	}
	
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CD_ID_TIPO_FUENTE", nullable=true)
	public Valor getIdTipoFuente() {
		return idTipoFuente;
	}
	public void setIdTipoFuente(Valor idTipoFuente) {
		this.idTipoFuente = idTipoFuente;
	}
	
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CD_ID_ENTR_SAL", nullable=true)
	public Valor getIdEntradaSalida() {
		return idEntradaSalida;
	}
	public void setIdEntradaSalida(Valor idEntradaSalida) {
		this.idEntradaSalida = idEntradaSalida;
	}
	
	
	@Column(name="NB_NOMBRE", length=50, nullable=true)
	public String getNombre() {
		return nombre;
	}
	
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	
	@Column(name="NB_RUTA_ARCHIVO", length=255,  nullable=true)
	public String getRutaArchivo() {
		return rutaArchivo;
	}
	public void setRutaArchivo(String rutaArchivo) {
		this.rutaArchivo = rutaArchivo;
	}
	
	
	@Column(name="NB_NOMBRE_JNDI", length=50,  nullable=true)
	public String getNombreJndi() {
		return NombreJndi;
	}
	public void setNombreJndi(String nombreJndi) {
		NombreJndi = nombreJndi;
	}
	
	
	@Column(name="NB_CONSULTA", length=255,  nullable=true)
	public String getConsulta() {
		return consulta;
	}
	public void setConsulta(String consulta) {
		this.consulta = consulta;
	}
	
	@Column(name="NB_NOMBRE_TABLA", length=50,  nullable=true)
	public String getNombreTabla() {
		return nombreTabla;
	}
	public void setNombreTabla(String nombreTabla) {
		this.nombreTabla = nombreTabla;
	}
	
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CD_ID_ESTADO", nullable=true)
	public Valor getIdEstado() {
		return idEstado;
	}
	public void setIdEstado(Valor idEstado) {
		this.idEstado = idEstado;
	}
	
	
	@Column(name="NB_NOMBRE_XML", length=50,  nullable=true)
	public String getNombreXml() {
		return nombreXml;
	}
	public void setNombreXml(String nombreXml) {
		this.nombreXml = nombreXml;
	}
	
	
	@Column(name="NB_RUTA_XML", length=255,  nullable=true)
	public String getRutaXml() {
		return rutaXml;
	}
	public void setRutaXml(String rutaXml) {
		this.rutaXml = rutaXml;
	}
	
	
	
}
